<?php
include_once '../gerenciadores/AutoloadGerenciadores.php';

class GerenciadorDeInstrutores{
	
	public function __construct(){
	}	
	
	public function __destruct(){
	}
	
	public function cadastraInstrutor(Instrutor $instrutor){
		__autoload("RepositorioInstrutor");
		
		RepositorioInstrutor::inserirInstrutor($instrutor);
	}
	
	public function getTabelaDisciplina(){
		__autoload("RepositorioDisciplina");
	
		$tabela = RepositorioDisciplina::getTabelaDisciplina();
	
		return $tabela;
	}
	
	public function requisitaMaterial(RequisicaoDeMaterial $requisicao){
		__autoload("RepositorioRequisicaoMaterial");
		RepositorioRequisicaoMaterial::criaRequisicao($requisicao);
	}
	
	public function exibeDisciplina(Curso $curso){
		__autoload("RepositorioDisciplina");
		
		$tabela = RepositorioDisciplina::getTabelaDisciplinaPorCurso($curso);
		
		return $tabela;
	}
	
	public function getDisciplina($idDisciplina){
		__autoload("RepositorioDisciplina");
		
		$disciplina = RepositorioDisciplina::getDisciplina($idDisciplina);
		return $disciplina;
	}

	public function lancaPlanoDeAula(PlanoDeAula $plano){
		__autoload("DataException");
		$e = new DataException();
		
		__autoload("RepositorioPlanoDeAula");
		if($plano->getDataAula() >= date("Y-m-d")){
			RepositorioPlanoDeAula::inserirPlanoDeAula($plano);
		}else{
			echo "<script>window.alert('".$e->getMessage()."')</script>";
		}
	}
	
	
	public function atualizaPlano(PlanoDeAula $plano){
		__autoload("DataException");
		$e = new DataException();
		
		__autoload("RepositorioPlanoDeAula");
		if($plano->getDataAula() >= date("Y-m-d")){
			RepositorioPlanoDeAula::atualizaPlano($plano);
		}else{
			echo "<script>window.alert('".$e->getMessage()."')</script>";
		}
	}
	
	public function getInscricao(Cadastro $cadastro){
		__autoload("RepositorioInstrutor");
		if($cadastro->getTipoVinculo()==1){
			$inscricao = RepositorioInstrutor::getInscricao($cadastro);
			return $inscricao;
		}
		
	}
	
	
	public function imprimePlano(InscricaoInstrutores $inscricao){
	
		__autoload("Disciplina");
		
		$turma = $inscricao->getCadastro()->getTurma();
		$disciplina = $inscricao->getDisciplina();
	
		__autoload("RepositorioPlanoDeAula");
	
		$tabela =  RepositorioPlanoDeAula::getPlanoDeAulaInstrutor($turma, $disciplina);
		
		return $tabela;
	}
	
	
	public function listaDeMateriais(){
		__autoload("RepositorioMaterial");
		$listaMateriais = RepositorioMaterial::exibeTabela();
		return $listaMateriais;
	}
	
	public function avaliaCampus(AvaliacaoDoCampus $avaliacao){
		__autoload("RepositorioDeAvaliacaoDoCampus");
		RepositorioDeAvaliacaoDoCampus::inserirAvaliacaoDoCampus($avaliacao);
	}
	
	
	public function verificaRequisicao(RequisicaoDeMaterial $requisicao){
		__autoload("RepositorioRequisicaoMaterial");
		$material = $requisicao->getMaterial();
		$turno = $requisicao->getTurno();
		$data = $requisicao->getDataAula();
		
		if(RepositorioRequisicaoMaterial::getQuantidadeMaterial($material->getIdMaterial(), $turno, $data));
		
	}
	
	
	public function exibeObjetivosDoPladis(Disciplina $disciplina, Cadastro $cadastro, Disciplina $disciplina){
		__autoload("RepositorioPlanoDeDisciplina");
		return RepositorioPlanoDeDisciplina::exibeObjetivosDisciplina($disciplina, $cadastro);
	}
	
	
	public function exibeAvaliacao(Instrutor $instrutor, Disciplina $disciplina, Turma $turma){
		__autoload("RepositorioAvaliacaoInstrutores");
		return RepositorioAvaliacaoInstrutores::getAvaliacaoInstrutor($instrutor, $disciplina, $turma);
	}
	
	public function tabelaGrafico(Pessoa $instrutor){
		__autoload("RepositorioAvaliacaoInstrutores");
		return RepositorioAvaliacaoInstrutores::getTabelaGrafico($instrutor);
		
	}
	
	public function exibeInstrutoresConteudistas(Disciplina $disciplina){
		__autoload("RepositorioInstrutor");
		return RepositorioInstrutor::listaInstrutorConteudista($disciplina);
	}
	
	public function exibePladis(Disciplina $disciplina){
		__autoload("RepositorioPlanoDeDisciplina");
		return RepositorioPlanoDeDisciplina::getPladis($disciplina);
	}
	
	public function imprimeCertidaoDocencia(Pessoa $pessoa){
		__autoload("RepositorioInstrutor");
		return RepositorioInstrutor::getCertidaoDeDocencia($pessoa);
	}
	
}
	
?>